The present invention relates in general to information transmission and acquisition and in particular to efficient methods of assembling, transmitting, and/or acquiring data to and from multiple network locations.
Many communication systems rely on a common channel, such as a band of frequencies or a computer network, to be shared among multiple users, in order to provide one-to-one and one-to-many information conduits. A problem with such systems is how to trade off the urgency of a particular transmission with the need to politely share the limited communication channel.
For example, web pages are frequently used to deliver information over the Internet and one method of insuring delivery of the most recent edition of a page of information is to transmit it only when it is requested. This xe2x80x98client pullxe2x80x99 methodology, commonly employed in browser software, is accomplished by entering a page""s address or through a hyper-text link. However, if several users request the same page of information, as is often the case, multiple copies are transmitted over the same medium, placing undue burden on the limited bandwidth of the system.
By using a broadcast paradigm the information can be sent once and stored locally by each client wishing to view the content at some later time. However, using this xe2x80x98server pushxe2x80x99 methodology, if the need for the information is unknown prior to broadcast or the client is not connected and listening to the network at the appropriate time, the transmission is missed. At that point an individual copy of the information would need to be requested creating additional burden on the transmission system, or the broadcast would need to be resent periodically.
Simply repeating the transmission periodically is insufficient. With large amounts of information being served and bandwidth being limited, long periods of time could elapse between updates. Users who missed the last broadcast might have to wait hours to get updated, and further, the utility of information that is changing rapidly, such as stock quotes or traffic conditions, could expire prior to delivery. For example, say a news story changes on average every three days, but has a wide variance, perhaps changing three days in a row and then not for a week. A simple system would fail to transmit new information in a timely manner if the frequency was set to low (e.g., once a week), it would waste bandwidth by transmitting old information to often if the frequency was set to high (e.g., once a day), and it would do both if the frequency was set to the average of once every three days.
An analogous situation, but in reverse, exists when a server or client attempts to acquire information from a plurality (potentially millions) of sources (other servers). Polling the sources for new information too often wastes bandwidth. Not polling often enough fails to acquire information in a timely manner.
What is needed therefore, is a method of transmitting data to a plurality of varying receivers that insures the timely delivery of varying information with optimal use of available bandwidth, and/or a corresponding method to acquire desired information for broadcast.
The present invention relates to efficient assembly and/or transmission of information to multiple receivers and efficient acquisition of information from multiple sources over a shared communication channel. The present invention describes a method for determining the order and frequency in which to broadcast or acquire files which overcomes the existing problems associated with inefficient bandwidth or other resource allocation, excessive delays, and lost information.
In accordance with the preferred embodiment of the present invention, an adaptive fuzzy control system is employed to prioritize files used to compose pages of information for broadcast delivery or acquisition over a communication medium. This is accomplished by assigning all of the files a degree of membership in each of three fuzzy variables, namely, file age, transmission age, and urgency (expiration time). It should be understood, however, that any fuzzy variables deemed important to the prioritization of the files could also be used. Such variables might include feedback or other communication from the clients. By way of example only, the number of clients requiring a file, the frequency each client intends or actually does view a page, or the user""s satisfaction level may be used.
Each of the fuzzy variables is divided into sets. For example, the file age might be described in four sets, new, recent, stale, and old. The assignment is on a fuzzy logic scale, wherein a particular file can be a member of more than one set of an input variable, at varying degrees. For example, a file may be 80% new and 20% recent. The degree of membership is determined by the centroids of the input variables.
The files are then mapped on to a multi-dimensional control surface (4 dimensions with 3 input variables), through a set of rules, to determine which files should be sent or acquired first. For example, a rule might be, xe2x80x9cif a file is recent, then give it a medium-high priority.xe2x80x9d The relative importance of these rules is determined by a set of weights. The centroids and weights are continually adjusted during operation to optimize the efficiency of the system in a dynamic environment. Adjusting the centroids and weights has the effect of reshaping the multi-dimensional control surface. Periodically the files are scheduled for transmission and/or acquisition by locating the priority on the current multi-dimensional control surface.
The method of the present invention provides efficient scheduling for file transfers in a broadcast system using modest computational resources. Further, the present invention learns how to improve the results it achieves in a changing environment, continually converging on the optimal solution for the current conditions.